import { ref } from 'vue'
import { defineStore } from 'pinia'
import { getUser, getToken } from '@/apis/user'
import { useCartStore } from './cart'
// import { mergeCartAPI } from '@/apis/cart'
// import { setToken } from '@/utils/auth'
// 储存用户信息
export const useUserStore = defineStore(
  'user',
  () => {
    // 调用购物车store
    const cartStore = useCartStore()
    // 定义用户管理的state
    const userInfo = ref({
      token: null,
      data: null
    })
    // 定义获取数据的action函数

    // 设置 Token
    // const setToken = (token) => {
    //   this.userInfo.token = token
    // }
    // // 清除 Token
    // const clearToken = () => {
    //   this.userInfo.token = null
    // }

    const getUserInfo = async ({ username, password, code, uuid }) => {
      //登录成功获取token
      var res = await getToken({ username, password, code, uuid })
      //将token存储到
      // this.setToken(res.token)
      userInfo.value.token = res.token
      res = await getUser()

      userInfo.value.data = res.data.user
      // console.log(userInfo.value)

      // 合并购物车操作
      // await mergeCartAPI(
      //   cartStore.cartList.map((item) => {
      //     return {
      //       skuId: item.skuId,
      //       selected: item.selected,
      //       count: item.count
      //     }
      //   })
      // )
      // cartStore.updateCartList()
    }
    // 退出时清除用户信息
    const clearUserInfo = () => {
      userInfo.value = {}
      cartStore.clearCart()
    }
    return {
      getUserInfo,
      userInfo,
      clearUserInfo
    }
  },
  {
    persist: true
  }
)
